The present invention relates to systems and methods for correcting errors, such as bias, and error changes in field sensors. More particularly, the invention relates to systems and methods for determining errors or bias and changes in errors or bias of field sensors, such as magnetometers and accelerometers, using angular rate data.
Magnetometers (or compasses), accelerometers, and gyroscopes are widely used in many applications including vehicle navigation systems and in electronics devices such as so-called smart-phones, mobile computing devices including tablets, and an ever-increasing range of systems. Magnetometers are used to measure Earth's local magnetic field vector with respect to the magnetometer device coordinate frame. Accelerometers are used to measure the device's total acceleration vector with respect to the device's coordinate frame, the total acceleration being the sum two components: a first component due to the local gravity field vector, and a second component due to the translational acceleration vector of the device with respect to an inertial coordinate frame. Often data from magnetometers and accelerometers are employed together to estimate the “full attitude” of the combined system or the aggregate device with which the sensors are associated, which typically includes determination of the heading, pitch, and roll of the device with respect to a frame defined jointly by the local gravity vector and the local magnetic field vector. Gyroscopes measure the angular rotation rate of the device with respect to the device coordinate frame. Many systems also incorporate gyroscopes combined with accelerometers and magnetometers to enable improved estimation of the “full attitude” of the system.
However, all these sensors can be affected by biases, scale factors, and non-orthogonality of their measurements. Therefore, sensor calibration to offset biases is valuable for accurate performance of attitude estimation of the system. Traditional mechanisms for trying to measure and calibrating against sensor bias include calculating the mean of the maximum value, Smax, and minimum value, Smin, of the measurements to estimate the sensor bias using the following equation:bias=(Smax+Smin)*0.5  (1);
where bias=[biasx, biasy, biasz].
An alternative solution to calibrate sensor bias is based on a least squares method to fit the data to a sphere as follows:(Sx−biasx)2+(Sy−biasy)2+(Sz−biasz)2=R2,  (2);where Sx, Sy, and Sz are the magnitudes of the X, Y, and Z sensor measurements and R2 is the magnitude of the magnetic field vector squared. Conventionally, equation (2) is solved for bias=[biasx, biasy, biasz]T. Unfortunately, these methods require large movements to measure a large angular range of outputs from the sensor. In general, 360 degree movement of the device/system is required in one or several degrees of freedom (e.g. a figure-eight pattern movement.)
Furthermore, sensor bias may change over time. Such methods for determining sensor bias are precluded from addressing sensor bias that may vary over time or with changes in operating conditions. Furthermore, changes in sensor bias over time or in response to changes in operating conditions can only be addressed by such calibration methods by recalibrating the device upon recognizing a change in sensor bias. Unfortunately, such calibration methods do not easily provide a way to identify changes in sensor bias without performing a full recalibration of sensor bias. Accordingly, such methods are ill suited to address changes in sensor bias over time or in response to changes in operating conditions.
Other traditional mechanisms for trying to calibrate against sensor bias, specifically compass bias, are accomplished by performing a series of small movements of the device/system and comparing the data from the compass/magnetometer with rotational data calculated by numerically integrating gyroscope data in three dimensions from a start position to an end position. This approach, however, requires numerical integration of the gyroscope data, which can be computationally intensive, particularly for systems without excess processing power. Furthermore, such approaches cannot continuously calculate sensor bias. This approach is often limited to compass bias calibration and, because the approach relies on numerical integration, it is inherently limited in the calibration process.
Therefore, there is a need for systems and methods robust determination of sensor bias over a range of conditions and times and to compensate or correct for determined sensor bias across the range of conditions and times.